package Modelo;

import Persistencia.AdministracionPersistenciaDescuento;

public abstract class EstrategiaCosto {
	
	protected int codigo;
	protected String descripcion;
	protected String estado;
	protected int prioridad;
	protected int exclusivo;
	protected String entidad;
	protected static int ultcodigo;
	
	/**
	 * @param codigo
	 * @param descripcion
	 * @param estado
	 * @param prioridad
	 * @param exclusivo
	 * @param entidad
	 */
	public EstrategiaCosto( String descripcion, String estado,
			int prioridad, int exclusivo, String entidad) {
		super();
		this.codigo = getultcodigo();
		this.descripcion = descripcion;
		this.estado = estado;
		this.prioridad = prioridad;
		this.exclusivo = exclusivo;
		this.entidad = entidad;
	}
	
	public EstrategiaCosto( int codigo,String descripcion, String estado,
			int prioridad, int exclusivo, String entidad) {
		super();
		this.codigo = codigo;
		this.descripcion = descripcion;
		this.estado = estado;
		this.prioridad = prioridad;
		this.exclusivo = exclusivo;
		this.entidad = entidad;
	}

	public int getultcodigo(){
		return ultcodigo ++;
	}
	/**
	 * @return the codigo
	 */
	public int getCodigo() {
		return codigo;
	}

	/**
	 * @param codigo the codigo to set
	 */
	public void setCodigo(int codigo) {
		this.codigo = codigo;
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}

	/**
	 * @return the descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}

	/**
	 * @return the estado
	 */
	public String getEstado() {
		return estado;
	}

	/**
	 * @param estado the estado to set
	 */
	public void setEstado(String estado) {
		this.estado = estado;
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}

	/**
	 * @return the prioridad
	 */
	public int getPrioridad() {
		return prioridad;
	}

	/**
	 * @param prioridad the prioridad to set
	 */
	public void setPrioridad(int prioridad) {
		this.prioridad = prioridad;
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}

	/**
	 * @return the exclusivo
	 */
	public int getExclusivo() {
		return exclusivo;
	}

	/**
	 * @param exclusivo the exclusivo to set
	 */
	public void setExclusivo(int exclusivo) {
		this.exclusivo = exclusivo;
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}

	/**
	 * @return the entidad
	 */
	public String getEntidad() {
		return entidad;
	}

	/**
	 * @param entidad the entidad to set
	 */
	public void setEntidad(String entidad) {
		this.entidad = entidad;
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}
	
	public abstract void setCombinado();
	
	
	public abstract int getCombinado ();
	
	public abstract float getDescuento();
	
	public abstract void setDescuento(float descuento);
	
	public abstract float calcularDescuento(int kilometraje, int dias, float costoAlquiler);
	
	
	
	
}
	
	
